package com.itheima.d1_set;

//目标：了解对象哈希值的特点
public class Demo2 {
    public static void main(String[] args) {
        Student stu1 = new Student("张三", 23);
        Student stu2 = new Student("张三", 23);
        //需求：对比stu1和stu2两个对象的哈希值是否相等，如果不相等，如何让它们相等？
        int hash1 = stu1.hashCode();
        int hash2 = stu2.hashCode();
        //int hash3 = stu2.hashCode();
        System.out.println("stu1对象哈希值：" + hash1);
        System.out.println("stu2对象哈希值：" + hash2);
        //同一个对象多次调用hashCode方法，返回的哈希值是一样！
        //System.out.println("stu2对象哈希值：" + hash3);

        //1.默认情况下，哈希值是根据对象地址值计算得到的！两个对象地址不一样，拿到的哈希值大概率不一样！
        //需要两个地址不同的对象，返回的哈希值一样，解决方案：不能根据地址值计算哈希值！
        //父类Object提供的hashCode方法不满足需求，需要子类自己重写！重写的逻辑规则：根据属性值计算哈希值！
    }
}
